Query
public class Query
Constructor Summary | |
---|---|
mixed | __construct(string sql, array bind, boolean master, bool|string class) 执行查询 返回数据集 |
Method Summary | |
---|---|
Connection | 获取当前的数据库Connection对象 |
$this | connect(mixed config) 切换当前的数据库连接 |
$this | name(string name) 指定默认的数据表名(不含前缀) |
$this | setTable(string table) 指定默认数据表名(含前缀) |
string | getTable(string name) 得到当前或者指定名称的数据表 |
string | parseSqlTable(string sql) 将SQL语句中的__TABLE_NAME__字符串替换成带前缀的表名(小写) |
int | execute(string sql, array bind) 执行语句 |
string | getLastInsID(string sequence) 获取最近插入的ID |
string | 获取最近一次查询的sql语句 |
mixed | transaction(callable callback) 执行数据库事务 |
void | 启动事务 |
void | commit() 用于非自动提交状态下面的查询提交 |
void | rollback() 事务回滚 |
boolean | batchQuery(array sql) 批处理执行SQL语句 批处理的指令都认为是execute操作 |
boolean | getConfig(string name) 获取数据库的配置参数 |
string | getPartitionTableName(array data, string field, array rule) 得到分表的的数据表名 |
protected Builder | builder() 获取当前的builder实例对象 |
static mixed | value(string field, mixed default) 得到某个字段的值 |
array | column(string field, string key) 得到某个列的数组 |
integer | count(string field) COUNT查询 |
float|int | sum(string field) SUM查询 |
float|int | min(string field) MIN查询 |
float|int | max(string field) MAX查询 |
float|int | avg(string field) AVG查询 |
integer | setField(string|array field, mixed value) 设置记录的某个字段值 支持使用数据库字段和方法 |
integer|true | setInc(string field, integer step, integer lazyTime) 字段值(延迟)增长 |
integer|true | setDec(string field, integer step, integer lazyTime) 字段值(延迟)减少 |
protected false|integer | lazyWrite(string type, string guid, integer step, integer lazyTime) 延时更新检查 返回false表示需要延时 否则返回实际写入的数值 |
$this | join(mixed join, mixed condition, string type) 查询SQL组装 join |
$this | union(mixed union, boolean all) 查询SQL组装 union |
$this | field(mixed field, boolean except, string tableName, string prefix, string alias) 指定查询字段 支持字段排除和指定数据表 |
$this | view(string|array table, string|array field, string|array on, string type, mixed join) 指定JOIN查询字段 |
$this | partition(array data, string field, array rule) 设置分表规则 |
$this | where(mixed field, mixed op, mixed condition) 指定AND查询条件 |
$this | whereOr(mixed field, mixed op, mixed condition) 指定OR查询条件 |
$this | whereXor(mixed field, mixed op, mixed condition) 指定XOR查询条件 |
protected void | parseWhereExp(string logic, string|array|\Closure field, mixed op, mixed condition, array param) 分析查询表达式 |
$this | limit(mixed offset, mixed length) 指定查询数量 |
$this | page(mixed page, mixed listRows) 指定分页 |
\think\paginator\Collection | paginate(int|null listRows, int|bool simple, array config) 分页查询 |
$this | table(mixed table) 指定当前操作的数据表 |
$this | using(mixed using) USING支持 用于多表删除 |
$this | order(string|array field, string order) 指定排序 order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc']) |
$this | cache(mixed key, integer expire, string tag) 查询缓存 |
$this | group(string group) 指定group查询 |
$this | having(string having) 指定having查询 |
$this | lock(boolean lock) 指定查询lock |
$this | distinct(string distinct) 指定distinct查询 |
$this | alias(mixed alias) 指定数据表别名 |
$this | force(string force) 指定强制索引 |
$this | comment(string comment) 查询注释 |
$this | fetchSql(boolean fetch) 获取执行的SQL语句 |
$this | fetchPdo(bool pdo) 不主动获取数据集 |
$this | fetchClass(string class) 指定数据集返回对象 |
$this | master() 设置从主服务器读取数据 |
$this | strict(bool strict) 设置是否严格检查字段名 |
$this | failException(bool fail) 设置查询数据不存在是否抛出异常 |
$this | sequence(string sequence) 设置自增序列名 |
$this | pk(string pk) 指定数据表主键 |
$this | whereTime(string field, string op, string|array range) 查询日期或者时间 |
mixed | getTableInfo(mixed tableName, string fetch) 获取数据表信息 |
string|array | getPk(string|array options) 获取当前数据表的主键 |
void | getTableFields(mixed options) |
void | getFieldsType(mixed options) |
void | getFieldsBind(mixed options) |
protected integer | getFieldBindType(string type) 获取字段绑定类型 |
$this | bind(mixed key, mixed value, integer type) 参数绑定 |
bool | isBind(string key) 检测参数是否已经绑定 |
protected $this | options(array options) 查询参数赋值 |
mixed | getOptions(string name) 获取当前的查询参数 |
$this | with(string|array with) 设置关联查询JOIN预查询 |
$this | withField(string |, mixed field) 关联预加载中 获取关联指定字段值 example: Model::with(['relation' => function($query){ $query->withField("id,name"); }]) |
$this | via(string via) 设置当前字段添加的表别名 |
$this | relation(string relation) 设置关联查询 |
protected void | parsePkWhere(array|string data, mixed options) 把主键值转换为查询条件 支持复合主键 |
integer|string | insert(mixed data, boolean replace, boolean getLastInsID, string sequence) 插入记录 |
integer|string | insertGetId(mixed data, boolean replace, string sequence) 插入记录并获取自增ID |
integer|string | insertAll(mixed dataSet) 批量插入记录 |
integer|string | selectInsert(string fields, string table) 通过Select方式插入记录 |
integer|string | update(mixed data) 更新记录 |
Collection|false|\PDOStatement|string | select(array|string|Query|\Closure data) 查找记录 |
array|false|\PDOStatement|string|Model | find(array|string|Query|\Closure data) 查找单条记录 |
protected void | throwNotFound(array options) 查询失败 抛出异常 |
array|\PDOStatement|string|Model | selectOrFail(array|string|Query|\Closure data) 查找多条记录 如果不存在则抛出异常 |
array|\PDOStatement|string|Model | findOrFail(array|string|Query|\Closure data) 查找单条记录 如果不存在则抛出异常 |
boolean | chunk(integer count, callable callback, string column) 分批数据返回处理 |
array | getBind() 获取绑定的参数 并清空 |
string | buildSql(bool sub) 创建子查询SQL |
int | delete(mixed data) 删除记录 |
protected array | 分析表达式(可用于查询或者写入操作) |
public mixed __construct(string sql, array bind, boolean master, bool|string class)
执行查询 返回数据集
public Connection getConnection()
获取当前的数据库Connection对象
public $this connect(mixed config)
切换当前的数据库连接
public $this name(string name)
指定默认的数据表名(不含前缀)
public $this setTable(string table)
指定默认数据表名(含前缀)
public string getTable(string name)
得到当前或者指定名称的数据表
public string parseSqlTable(string sql)
将SQL语句中的__TABLE_NAME__字符串替换成带前缀的表名(小写)
public int execute(string sql, array bind)
执行语句
public string getLastInsID(string sequence)
获取最近插入的ID
public string getLastSql()
获取最近一次查询的sql语句
public mixed transaction(callable callback)
执行数据库事务
public void startTrans()
启动事务
public void commit()
用于非自动提交状态下面的查询提交
public void rollback()
事务回滚
public boolean batchQuery(array sql)
批处理执行SQL语句 批处理的指令都认为是execute操作
public boolean getConfig(string name)
获取数据库的配置参数
public string getPartitionTableName(array data, string field, array rule)
得到分表的的数据表名
protected Builder builder()
获取当前的builder实例对象
public static mixed value(string field, mixed default)
得到某个字段的值
public array column(string field, string key)
得到某个列的数组
public integer count(string field)
COUNT查询
public float|int sum(string field)
SUM查询
public float|int min(string field)
MIN查询
public float|int max(string field)
MAX查询
public float|int avg(string field)
AVG查询
public integer setField(string|array field, mixed value)
设置记录的某个字段值 支持使用数据库字段和方法
public integer|true setInc(string field, integer step, integer lazyTime)
字段值(延迟)增长
public integer|true setDec(string field, integer step, integer lazyTime)
字段值(延迟)减少
protected false|integer lazyWrite(string type, string guid, integer step, integer lazyTime)
延时更新检查 返回false表示需要延时 否则返回实际写入的数值
public $this join(mixed join, mixed condition, string type)
查询SQL组装 join
public $this union(mixed union, boolean all)
查询SQL组装 union
public $this field(mixed field, boolean except, string tableName, string prefix, string alias)
指定查询字段 支持字段排除和指定数据表
public $this view(string|array table, string|array field, string|array on, string type, mixed join)
指定JOIN查询字段
public $this partition(array data, string field, array rule)
设置分表规则
public $this where(mixed field, mixed op, mixed condition)
指定AND查询条件
public $this whereOr(mixed field, mixed op, mixed condition)
指定OR查询条件
public $this whereXor(mixed field, mixed op, mixed condition)
指定XOR查询条件
protected void parseWhereExp(string logic, string|array|\Closure field, mixed op, mixed condition, array param)
分析查询表达式
public $this limit(mixed offset, mixed length)
指定查询数量
public $this page(mixed page, mixed listRows)
指定分页
public \think\paginator\Collection paginate(int|null listRows, int|bool simple, array config)
分页查询
public $this table(mixed table)
指定当前操作的数据表
public $this using(mixed using)
USING支持 用于多表删除
public $this order(string|array field, string order)
指定排序 order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc'])
public $this cache(mixed key, integer expire, string tag)
查询缓存
public $this group(string group)
指定group查询
public $this having(string having)
指定having查询
public $this lock(boolean lock)
指定查询lock
public $this distinct(string distinct)
指定distinct查询
public $this alias(mixed alias)
指定数据表别名
public $this force(string force)
指定强制索引
public $this comment(string comment)
查询注释
public $this fetchSql(boolean fetch)
获取执行的SQL语句
public $this fetchPdo(bool pdo)
不主动获取数据集
public $this fetchClass(string class)
指定数据集返回对象
public $this master()
设置从主服务器读取数据
public $this strict(bool strict)
设置是否严格检查字段名
public $this failException(bool fail)
设置查询数据不存在是否抛出异常
public $this sequence(string sequence)
设置自增序列名
public $this pk(string pk)
指定数据表主键
public $this whereTime(string field, string op, string|array range)
查询日期或者时间
public mixed getTableInfo(mixed tableName, string fetch)
获取数据表信息
public string|array getPk(string|array options)
获取当前数据表的主键
public void getTableFields(mixed options)
public void getFieldsType(mixed options)
public void getFieldsBind(mixed options)
protected integer getFieldBindType(string type)
获取字段绑定类型
public $this bind(mixed key, mixed value, integer type)
参数绑定
public bool isBind(string key)
检测参数是否已经绑定
protected $this options(array options)
查询参数赋值
public mixed getOptions(string name)
获取当前的查询参数
public $this with(string|array with)
设置关联查询JOIN预查询
public $this withField(string |, mixed field)
关联预加载中 获取关联指定字段值 example: Model::with(['relation' => function($query){ $query->withField("id,name"); }])
public $this via(string via)
设置当前字段添加的表别名
public $this relation(string relation)
设置关联查询
protected void parsePkWhere(array|string data, mixed options)
把主键值转换为查询条件 支持复合主键
public integer|string insert(mixed data, boolean replace, boolean getLastInsID, string sequence)
插入记录
public integer|string insertGetId(mixed data, boolean replace, string sequence)
插入记录并获取自增ID
public integer|string insertAll(mixed dataSet)
批量插入记录
public integer|string selectInsert(string fields, string table)
通过Select方式插入记录
public integer|string update(mixed data)
更新记录
public Collection|false|\PDOStatement|string select(array|string|Query|\Closure data)
查找记录
public array|false|\PDOStatement|string|Model find(array|string|Query|\Closure data)
查找单条记录
protected void throwNotFound(array options)
查询失败 抛出异常
public array|\PDOStatement|string|Model selectOrFail(array|string|Query|\Closure data)
查找多条记录 如果不存在则抛出异常
public array|\PDOStatement|string|Model findOrFail(array|string|Query|\Closure data)
查找单条记录 如果不存在则抛出异常
public boolean chunk(integer count, callable callback, string column)
分批数据返回处理
public array getBind()
获取绑定的参数 并清空
public string buildSql(bool sub)
创建子查询SQL
public int delete(mixed data)
删除记录
protected array parseExpress()
分析表达式(可用于查询或者写入操作)